home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 04 - 1988 / 04.01 Jan 88 / mpw source stuff / for Tools folder / CompErr < prev    next >
Encoding:
Text File  |  1987-09-14  |  4.3 KB  |  147 lines  |  [TEXT/MPS ]

  1.  
  2. ### Shell script to find and open error files generated by MixMake 
  3. ### command, opening a different files in sequence on subsequent
  4. ### calls.  “.Fer” files should have been created by MixMake’s 
  5. ### Resume tasks.  This script MUST be run by the menu item 
  6. ###    provided by the Resume task to work properly.
  7. ###    {Status} returned by this command on exit is the new
  8. ###    value for global shell variable {MakeErr}.
  9. ###            W.G. Powell    1987    for MacTutor
  10.  
  11. # Some commands intentionally return nonzero status, so don't 
  12. #    terminate this command file
  13. Set _oldExit {Exit}
  14. Set Exit 0
  15. ###            Part 1
  16. ### Process MacC error files
  17. Files MACC.Fer >Dev:Null ≥Dev:Null    # Don't need output
  18. If ({Status} == 0 && {MakeErr} == 0 )    
  19. # File MACC.Fer exists   AND still processing Mac C errors.
  20.     Open -t MACC.Fer
  21.     Find /'Errors in File: '/Δ:Δ/' ('/ MACC.Fer    # Open bad source
  22.     If ({Status} == 0)
  23.         # find directory of source file
  24.         Set __tmpSrcDir "`Catenate MACC.Fer.§`"
  25.         Open -t -n MACC.tmp.tmp ≥Dev:Null
  26.         Echo -n "{__tmpSrcDir}">MACC.tmp.tmp ≥Dev:Null
  27.         Find ∞ MACC.tmp.tmp ≥Dev:Null
  28.         Clear \∂:\Δ:∞ MACC.tmp.tmp ≥Dev:Null
  29.         Find •:∞ MACC.tmp.tmp ≥Dev:Null
  30.         Set __tmpSrcDir "`Catenate MACC.tmp.tmp.§`" ≥Dev:Null
  31.         Close -n MACC.tmp.tmp
  32.         # open the file
  33.         Open  "`Catenate MACC.Fer.§`"
  34.         If ({Status} ≠ 0)
  35.             Alert "Cannot open source file `Catenate MACC.Fer.§`"
  36.         End
  37.         Find /'(See '/Δ:Δ/')'/ MACC.Fer        # Open diagnostic file
  38.         If ({Status} == 0)
  39.             Open "`Catenate MACC.Fer.§`" ≥Dev:Null
  40.             If ({Status} ≠ 0)
  41.                 # try again in source directory
  42.                 Open "{__tmpSrcDir}`Catenate MACC.Fer.§`"
  43.                 If ({Status} ≠ 0)
  44.                     Alert "Cannot open error file `Catenate MACC.Fer.§`"
  45.                 End
  46.                 Unset __tmpSrcDir
  47.             End
  48.         Else
  49.             Alert "Don't know corresponding error file"
  50.         End
  51.     Else    # Open file MACC.Fer after processing all the files it named
  52.         Open MACC.Fer
  53.         If ({Status} ≠ 0)
  54.             Alert "Cannot open error file MACC.Fer"
  55.         End
  56.         Alert "Finished last Consulair C Error File.∂nTML Pascal Next"
  57.         # Save current selection
  58.         Find §Δ MACC.Fer ≥Dev:Null
  59.         Replace § " " MACC.Fer ≥Dev:Null
  60.         Save MACC.Fer ≥Dev:Null
  61.         Close -y MACC.Fer ≥Dev:Null
  62.         Exit `Evaluate {MakeErr} + 1`
  63.     End
  64.     # Save current selection
  65.     Find §Δ MACC.Fer ≥Dev:Null
  66.     Replace § " " MACC.Fer ≥Dev:Null
  67.     Save MACC.Fer ≥Dev:Null
  68.     Close -y MACC.Fer ≥Dev:Null
  69.     Exit {MakeErr}
  70. Else If ({MakeErr} == 0)
  71.     Set MakeErr `Evaluate {MakeErr} + 1`
  72.     # Go on to Pascal files
  73. End
  74. ###            Part 2
  75. ### Process TML Pascal Error files
  76. Files TMLP.Fer >>Dev:Null ≥Dev:Null
  77. If ({Status} == 0 && {MakeErr} == 1)
  78.     Open -t TMLP.Fer
  79.     Find /•/Δ:Δ/∂    / TMLP.Fer
  80.     If ({Status} == 0)
  81.         Open "`Catenate TMLP.Fer.§`"    # Open bad source
  82.         If ({Status} != 0)
  83.             Alert "Cannot open source file `Catenate TMLP.Fer`"
  84.         End
  85.         Find /∂    /Δ:/∞/    TMLP.Fer
  86.         If ({Status} == 0)
  87.             Open "`Catenate TMLP.Fer.§`"    # Open diagnostic file
  88.             If ({Status} != 0) 
  89.                 Alert "Cannot open error file `Catenate TMLP.Fer.§`"
  90.             End
  91.         Else
  92.             Alert "No corresponding error file"
  93.         End
  94.     Else
  95.         Alert "Finished last TML Pascal Error File.∂nLink diagnostics next."
  96.         # Save current selection
  97.         Find §Δ TMLP.Fer ≥Dev:Null
  98.         Replace § " " TMLP.Fer ≥Dev:Null
  99.         Save TMLP.Fer ≥Dev:Null
  100.         Close -y TMLP.Fer ≥Dev:Null
  101.         Exit `Evaluate {MakeErr} + 1 `
  102.     End
  103.     # Save current selection
  104.     Find §Δ TMLP.Fer ≥Dev:Null
  105.     Replace § " " TMLP.Fer ≥Dev:Null
  106.     Save TMLP.Fer ≥Dev:Null
  107.     Close -y TMLP.Fer ≥Dev:Null
  108.     Exit {MakeErr}
  109. Else If ({MakeErr} == 1) 
  110.     Set MakeErr `Evaluate {MakeErr} + 1`
  111.     # Go on to linker errors
  112. End
  113. ###            Part 3
  114. ### Process Linker Error files
  115. Files Link.Fer >>Dev:Null ≥Dev:Null
  116. If ({Status} == 0 && {MakeErr} == 2)
  117.     Open -t Link.Fer
  118.     Find /•/Δ:Δ/∂    / Link.Fer
  119.     If ({Status} == 0)
  120.         Open "`Catenate Link.Fer.§`"    # Open bad source
  121.         If ({Status} != 0)
  122.             Alert "Cannot open link script `Catenate TMLP.Fer`"
  123.         End
  124.         Find /∂    /Δ:/∞/    Link.Fer
  125.         If ({Status} == 0)
  126.             Open "`Catenate Link.Fer.§`"    # Open diagnostic files
  127.             If ({Status} != 0) 
  128.                 Alert "Cannot open error file `Catenate TMLP.Fer.§`"
  129.             End
  130.         End
  131.     Else
  132.         Alert "All error files have now been processed!"
  133.         # Save current selection
  134.         Find §Δ Link.Fer ≥Dev:Null
  135.         Replace § " " Link.Fer ≥Dev:Null
  136.         Save Link.Fer ≥Dev:Null
  137.         Close -y Link.Fer ≥Dev:Null
  138.         DeleteMenu File "Open Diagnostics…"
  139.         Exit `Evaluate {MakeErr} + 1 `
  140.     End
  141.     Exit {MakeErr}
  142. Else If ({MakeErr} == 2)
  143.     Alert "All error files have now been processed!"
  144.     DeleteMenu File "Open Diagnostics…"
  145.     Exit `Evaluate {MakeErr} + 1`
  146. End
  147. Exit {MakeErr}